/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package cz.cuni.mff.d3s.arcas.intermediate;

import org.eclipse.emf.cdo.CDOObject;

import org.eclipse.emf.common.util.EList;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Document</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument#getConnectors <em>Connectors</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument#getDocks <em>Docks</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument#getDistributionArchitectures <em>Distribution Architectures</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument#getElementArchitectures <em>Element Architectures</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument#getPorts <em>Ports</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument#getRoles <em>Roles</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument#getSubelements <em>Subelements</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument#getSignatures <em>Signatures</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument#getUnits <em>Units</em>}</li>
 * </ul>
 * </p>
 *
 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#getIntermediateDocument()
 * @model
 * @extends CDOObject
 * @generated
 */
public interface IntermediateDocument extends CDOObject {
	/**
	 * Returns the value of the '<em><b>Connectors</b></em>' reference list.
	 * The list contents are of type {@link cz.cuni.mff.d3s.arcas.intermediate.Connector}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Connectors</em>' reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Connectors</em>' reference list.
	 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#getIntermediateDocument_Connectors()
	 * @model
	 * @generated
	 */
	EList<Connector> getConnectors();

	/**
	 * Returns the value of the '<em><b>Docks</b></em>' containment reference list.
	 * The list contents are of type {@link cz.cuni.mff.d3s.arcas.intermediate.DeploymentDock}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Docks</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Docks</em>' containment reference list.
	 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#getIntermediateDocument_Docks()
	 * @model containment="true"
	 * @generated
	 */
	EList<DeploymentDock> getDocks();

	/**
	 * Returns the value of the '<em><b>Distribution Architectures</b></em>' containment reference list.
	 * The list contents are of type {@link cz.cuni.mff.d3s.arcas.intermediate.DistributionArchitecture}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Distribution Architectures</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Distribution Architectures</em>' containment reference list.
	 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#getIntermediateDocument_DistributionArchitectures()
	 * @model containment="true"
	 * @generated
	 */
	EList<DistributionArchitecture> getDistributionArchitectures();

	/**
	 * Returns the value of the '<em><b>Element Architectures</b></em>' containment reference list.
	 * The list contents are of type {@link cz.cuni.mff.d3s.arcas.intermediate.ElementArchitecture}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Element Architectures</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Element Architectures</em>' containment reference list.
	 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#getIntermediateDocument_ElementArchitectures()
	 * @model containment="true"
	 * @generated
	 */
	EList<ElementArchitecture> getElementArchitectures();

	/**
	 * Returns the value of the '<em><b>Ports</b></em>' containment reference list.
	 * The list contents are of type {@link cz.cuni.mff.d3s.arcas.intermediate.Port}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Ports</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Ports</em>' containment reference list.
	 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#getIntermediateDocument_Ports()
	 * @model containment="true"
	 * @generated
	 */
	EList<Port> getPorts();

	/**
	 * Returns the value of the '<em><b>Roles</b></em>' containment reference list.
	 * The list contents are of type {@link cz.cuni.mff.d3s.arcas.intermediate.Role}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Roles</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Roles</em>' containment reference list.
	 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#getIntermediateDocument_Roles()
	 * @model containment="true"
	 * @generated
	 */
	EList<Role> getRoles();

	/**
	 * Returns the value of the '<em><b>Subelements</b></em>' containment reference list.
	 * The list contents are of type {@link cz.cuni.mff.d3s.arcas.intermediate.Subelement}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Subelements</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Subelements</em>' containment reference list.
	 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#getIntermediateDocument_Subelements()
	 * @model containment="true"
	 * @generated
	 */
	EList<Subelement> getSubelements();

	/**
	 * Returns the value of the '<em><b>Signatures</b></em>' reference list.
	 * The list contents are of type {@link cz.cuni.mff.d3s.arcas.intermediate.Signature}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Signatures</em>' reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Signatures</em>' reference list.
	 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#getIntermediateDocument_Signatures()
	 * @model
	 * @generated
	 */
	EList<Signature> getSignatures();

	/**
	 * Returns the value of the '<em><b>Units</b></em>' reference list.
	 * The list contents are of type {@link cz.cuni.mff.d3s.arcas.intermediate.Unit}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Units</em>' reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Units</em>' reference list.
	 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#getIntermediateDocument_Units()
	 * @model
	 * @generated
	 */
	EList<Unit> getUnits();

} // IntermediateDocument
